const express = require('express');

//创建网站服务器
const app = express();
//获取一级路由
const home = require('./route/home');
const admin = require('./route/admin');

const bodyParser = require('body-parser');
//拦截所有请求
app.use(bodyParser.urlencoded({extended: false}))
//访问静态文件
const path = require('path')
app.use('/static',express.static(path.join(__dirname,'public')));

//配置 express-art-template模板引擎
app.engine('art',require('express-art-template'));
app.set('views',path.join(__dirname,'views'));
app.set('view engine','art');

//存储公共数据
app.locals.users = [{
    name: 'zhangsan',
    age:20
},{
    name: 'lisi',
    age: 22
}]

app.get('/index',(req,res)=>{
    res.render('index',{
        msg: 'message'
    })
})

//获取post请求参数
app.post('/add',(req,res)=>{
    res.send(req.body)
})
/*app.use((req, res, next)=>{
    console.log('请求经过了use中间件');
    next();
})

app.get('/request', (req, res, next)=>{
    //用res.send()代替res.end()
    //send内部会检测相应内容的额类型
//    send会自动设置http状态码
//    send会自动设置相应的内容类型及编码
    console.log('请求经过了request get请求')
    req.name = 'zhangsan';
    next();
});
app.get('/request',(req, res, next)=>{
    res.send(req.name);
});*/
/*//手动抛出一个错误
app.get('/index',(req, res, next)=>{
    throw new Error('程序发生了未知错误');
});
//错误处理中间件
app.use((err, req, res, next)=>{
    res.status(500).send(err.message);
})*/
//给路由绑定请求地址
app.use('/home',home)
app.use('/admin',admin)

app.listen(3000);
console.log('网站服务器启动成功')
